package io.jt808.proto.req;

import io.norland.buffer.AutoBuffer;
import io.norland.annotations.Proto;
import io.norland.proto.IProto;
import lombok.Data;

/**
 * 数据上行透传
 */
@Proto("0900")
@Data
public class JT0900 implements IProto {
    /**
     * 透传消息类型
     * GNSS 模块详细定位数据  0x00  GNSS 模块详细定位数据
     * 道路运输证 IC 卡信息  0x0B
     * 道路运输证 IC 卡信息上传消息为 64Byte，下传消息为
     * 24Byte。道路运输证 IC 卡认证透传超时时间为 30s。
     * 超时后，不重发。
     * 串口 1 透传  0x41  串口 1 透传消息
     * 串口 2 透传  0x42  串口 2 透传消息
     * 用户自定义透传  0xF0-0xFF  用户自定义透传消息
     */
    private byte messageType;
    /**
     * 透传消息内容
     */
    private byte[] messageContent;

    public final byte[] writeToBytes() {
        AutoBuffer buffer = new AutoBuffer();
        buffer.writeByte(messageType);
        buffer.writeBytes(messageContent);
        return buffer.array();
    }

    public final void readFromBuf(AutoBuffer buffer) {
        messageType = buffer.readByte();
        messageContent = buffer.readBytes();
    }
}